package com.ruoyi.project.business.dailyschedule.mapper;

import com.ruoyi.project.business.dailyschedule.entity.DailySchedule;
import com.ruoyi.project.business.dailyschedule.response.DailyScheduleResponse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 日排班Mapper接口
 * 
 * @author ${author}
 * @date 2024-03-22
 */
public interface DailyScheduleMapper {
    /**
     * 查询日排班
     * 
     * @return 日排班
     */
    public DailySchedule selectDailyScheduleById(Long id);

    /**
     * 查询日排班列表
     * 
     * @return 日排班集合
     */
    public List<DailyScheduleResponse> selectDailyScheduleList(DailySchedule dailySchedule);

    /**
     * 新增日排班
     * 
     * @return 结果
     */
    public int insertDailySchedule(DailySchedule dailySchedule);

    /**
     * 修改日排班
     * 
     * @return 结果
     */
    public int updateDailySchedule(DailySchedule dailySchedule);

    /**
     * 删除日排班
     * 
     * @return 结果
     */
    public int deleteDailyScheduleById(Long id);

    /**
     * 批量删除日排班
     * 
     * @return 结果
     */
    public int deleteDailyScheduleByIds(Long[] ids);

    void batchInsert(List<DailySchedule> resList);

    void deleteDailyScheduleByUserIdAndDate(
            @Param("userIds") List<Long> userIds,
            @Param("year") Integer year,
            @Param("month") Integer month,
            @Param("dayOfMonth") Integer dayOfMonth,
            @Param("tenantId") Long tenantId);
}
